In contemporary computer based systems for controlling e.g. manufacturing and process industries, such as chemical plants, oil refineries, pulp and paper mills, steel mills, automated factories and so on, or other control systems, such as traffic management systems or intelligent building control system, there has typically existed a large range of different applications of different origin that have had to be integrated into a single control system. Further, a control system typically includes several computers connected through a data communication network, where said applications are distributed in different configurations for different installations. The communication network may be a closed local network (e.g. a local area network LAN), a closed global network (e.g. an intranet network) or an open global network (e.g. the Internet).
Traditional methods for this integration have entailed substantially lengthy development times resulting, for example, in significant changes in requirements before such control programs have been completed and made ready for use. A second problem with traditional development methods is that it has been difficult and lengthy to update such control programs to include new requirements, such as the integration of additional and new applications. Writing and modifying control system programs to combine newer applications with older, existing applications, which older applications are sometimes called legacy applications, has also been difficult, time consuming and expensive. Sometimes the update has required a replacement of the entire existing application with a newer one.
The adoption of object-oriented programming languages and methods has led to somewhat shorter development times, and made it somewhat easier to incorporate or integrate new applications. An aim of the object oriented techniques is to break the task down to smaller autonomous entities that are enabled to work together to provide the needed functionality. These individual entities are called objects. During the development of the set of control instructions (i.e. the control software) the designer determines what objects are needed and the interrelations of each chosen object with other objects. Examples of object oriented technology, without limiting to these, include technologies such as C++ or Java.
The object oriented technologies typically require instantiation of the objects to obtain instances of the objects for use by the computer in the data processing operations. The instantiation has conventionally referred to the use of object classes which include the function of an object. The instances created by the instantiation form individual entities that can be made unique by addition of different properties thereto. An adaptation of an object is made by changing these properties.
An object may have different aspects, each aspect defining more precisely the nature and/or function of the object. That is, an object may associate with one or more different aspects that represent facets of a real world entity that the object represents. An aspect may provide a piece of the functionality of the object. An aspect may be either exclusive or shared by several objects. An object may inherit an aspect from another object.
Objects may be divided between ‘object type’ objects and instances. The objects belonging to instances may inherit aspects from object types and other objects. The aspects of object type objects may be shared by several instances.
The term ‘object type’ refers to a functionality that may be used at the instantiation stage of objects to reassemble those instances that are needed to model a real world entity or object in a computerised system. An object may be a composite object or a simple object. The term ‘composite object’ refers to an object that represents several objects i.e. a collection of objects. A composite object type in turn can be defined as an object type that at an instantiation stage results in the instantiation of several objects that may be of several types. A reference is made herein to FIG. 2 that illustrates the difference between the composite object type (person type A) and a simple object type (Heart type A).
IEC standard DIS ISO/IEC 1346-1 1995 “Structuring principles and reference designations”, contains a reference designation system for the unambiguous identification of parts of any system in the general technical context such as in a manufacturing company, plant or operating company or other organisation. Within this description the terms object, aspect and reference designations in particular are used to refer such parts of any system in the general technical context in accordance with the definitions in the DIS standard ISO/IEC 1346-1. In addition, certain additional types of objects and aspects will be additionally defined in the course of this description.
U.S. Pat. No. 5,787,425 describes a concept of client/server relationships between objects in an object-oriented computer program. The objects may communicate with each other, for example in order for a first object to access data held by a second object. When the first object needs access to some data controlled by the second object, the first object is considered to be a client of the second object, which in turn is considered to be a server. To access the data controlled by the server object, the second object in this example, one of the operations of the first object, the client object, will call or invoke one of the operations of the server object. The operation of the server object thus invoked is then executed to access and/or manipulate the data on behalf of the client object.
However, the conventional system design requires that an object in a computerized system has prior information about an application in order for the object to, for example, access a method implemented by the application. The identities of the objects need to be known by those applications which want to access the other applications. However, this may not always be an optimal way to design all system including computers and/or the creation of instances of objects may require substantial amount of time. The inventors have found that there is a need for a new way to design and instantiate systems to integrate applications, such that different applications can be both fully independent, based on different technologies, and without knowledge of the specifics of each other, and at the same time able to co-operate with each other to perform the collective functionality of the computerized system.